Space vehicle rendezvous

ABSTRACT

A method and apparatus provide for a basket of passively-safe thruster-burn positions within a context of rendezvous between a space-vehicle and a resident-space-object while in orbit around the Earth, for example. The basket of positions is defined by an intersection of a plurality of half-spaces determined based on a keep-out-zone associated with the resident-space-object, and a nominal position of the space-vehicle. The plurality of half-spaces defines a corresponding plurality of half-space boundary conditions within which the basket of positions is disposed. When a position of the space-vehicle is within the basket of positions at a time of a scheduled thruster-burn, then the scheduled thruster-burn is ensured to result in passive-safety.

This is a Non-Provisional application which claims the priority benefit of U.S. Provisional Application No. 61/563,259 filed on Nov. 11, 2011, having Bruce Romney as the sole named inventor. The U.S. Provisional Application No. 61/563,259 is hereby incorporated by reference in its entirety.

BACKGROUND

Space vehicles are frequently sent into space to rendezvous with resident-space-objects such as satellites or space stations. Rendezvous operations require careful consideration to achieve safety requirements.

SUMMARY

A method and apparatus are disclosed that provide passively-safe thruster-burn positions of a space-vehicle (a basket of positions) within the context of rendezvous between the space-vehicle and a resident-space-object while in orbit around the Earth, for example. The basket of positions is defined by an intersection of a plurality of first half-spaces determined based on a keep-out-zone (KOZ) associated with the resident-space-object, and a nominal position of the space-vehicle. The plurality of first half-spaces defines a corresponding plurality of first half-space boundary conditions within which the basket of positions is disposed. When a detected position of the space-vehicle is within the basket of positions at a time of a next scheduled thruster-burn, then the next scheduled thruster-burn is passively-safe, i.e., the space-vehicle is ensured to avoid the keep-out-zone of the resident-space-object in the presence of space-vehicle system uncertainties, and even if a space-vehicle system failure prevents all subsequent maneuvers.

A rendezvous plan may include thruster-burns at selected nominal positions of the space-vehicle and send the space-vehicle along a nominal flight path (trajectory). The nominal position of the space-vehicle is one of many positions that are part of the rendezvous plan between the space-vehicle and the resident-space-object. Due to various sources of possible errors, the space-vehicle proceeds along a trajectory that may have positions and velocities which differ from the nominal positions and velocities. These, position and velocity differences are accounted for by adjusting a next scheduled thruster-burn so that space-vehicle is set on a passively-safe trajectory toward a next nominal position.

Before the space-vehicle reaches a position for the next scheduled thruster-burn, the detected position and velocity of the space-vehicle may be obtained from sensors either onboard the space-vehicle or as part of a ground-station, propagated to a time of the next scheduled thruster-burn, and the propagated position checked against the basket of positions. This checking process is performed by confirming that a set of inequalities associated with the first half-space boundary conditions is satisfied by the propagated position. If any of the inequalities are not satisfied but the time for the scheduled thruster-burn has not yet arrived, then a warning signal may be issued that passive-safety may not be assured. If any of the inequalities are not satisfied and the time for the scheduled has arrived, then a signal is issued that rejects the next scheduled thruster-burn. If all the inequalities are satisfied at the time for the next scheduled thruster-burn, then the next scheduled thruster-burn is executed because passive-safety is ensured.

The first half-space boundary conditions are generated based on a portion of a plurality of second half-space boundaries that are identified to be points on a convex hull in a dual-space. Each of the second half-space boundary conditions corresponds to a plane that is tangential to the KOZ and perpendicular to a vector between a nominal position of the space-vehicle and a center of the KOZ. The plane defines a new KOZ (NKOZ). One NKOZ(t_(i)) is defined for each nominal position of the space-vehicle, for i=1, 2, . . . n. Each i is associated with a moment in time following a thruster-burn. A set of second half-spaces may be calculated as inequalities based on the corresponding NKOZ(t_(i)), the nominal position of the space-vehicle at time maximum values of various error parameters related to a position and a velocity of the space-vehicle, and maximum values of control errors associated with a thruster-burn such as a direction and a magnitude of the thruster-burn.

All second half-spaces corresponding to nominal positions propagated for times up to a maximum elapsed time T from the next scheduled thruster-burn are mapped as points in the dual-space. A convex hull of all the points in the dual-space may be formed to select second half-spaces that correspond to points on the convex hull. Second half-space boundary conditions corresponding to the selected second half-spaces are identified to be the first half-space boundary conditions.

Although the above discussion relates to adjusting the next scheduled thruster-burn to correct position and velocity errors, a similar process may be implemented if adjustments to a previous scheduled thruster-burn are not made, but a nominal scheduled thruster-burn is executed. A basket of positions may be defined for a next scheduled thruster-burn that ensures passive-safety in-spite-of deviations from the planned rendezvous.

BRIEF DESCRIPTION OF THE DRAWINGS

Exemplary embodiments are described in detail below with reference to the accompanying drawings wherein like numerals reference like elements, and wherein:

FIG. 1 shows an exemplary diagram of a resident-space-object in orbit around the Earth;

FIG. 2 shows an exemplary diagram of a space-vehicle in a rendezvous operation with the resident-space-object;

FIG. 3 shows an exemplary diagram of planned and actual positions of the space-vehicle for a next scheduled thruster-burn;

FIG. 4 shows an exemplary diagram of position vectors of the space vehicle with respect to the resident-space-object;

FIG. 5 shows an exemplary diagram of possible thruster-burn error;

FIG. 6 shows an exemplary diagram of mapping from real-space to dual-space;

FIG. 7 shows an exemplary diagram of points in dual-space that are on a convex hull;

FIG. 8 shows a diagram of an exemplary rendezvous control apparatus; and

FIG. 9 shows an exemplary flow chart of the rendezvous control apparatus.

DETAILED DESCRIPTION OF EMBODIMENTS

FIG. 1 shows an exemplary diagram 100 of a resident-space-object 102 in an orbit 104 around Earth 106. For rendezvous purposes, a radial/in-track/cross-track (RIC) coordinate system is centered on resident-space-object 102. The RIC coordinate system has an R-axis which points away from Earth 106, a C-axis which points in a direction of an angular velocity vector of resident-space-object 102 in orbit 104, and an I-axis which points along a velocity vector of resident-space-object 102 for a circular orbit.

FIG. 2 shows a keep-out-zone (KOZ) 200 such as a sphere, for example, for resident-space-object 102 having a radius R. KOZ 200 may be a surface surrounding resident-space-object 102 that other space-objects such as a space-vehicle 202 must not penetrate so that safety or an operation of resident-space-object 102 may not be compromised.

Space-vehicle 202 is shown being controlled by a ground-station 204 via communication link 206. Onboard sensors or ground-station sensors may detect a position and a velocity of space-vehicle 202, for example. Onboard sensor information may be transmitted back to ground-station 204 for processing to control space-vehicle 202 to rendezvous with resident-space-object 102. Although ground-station 204 is used as an example, space-vehicle 202 may implement ground-station functions onboard and may control the rendezvous with resident-space-object 102 on its own.

When a rendezvous is planned between space-vehicle 202 and resident-space-object 102 for example, flight paths (trajectories) and thruster-burns are usually planned ahead of time so that passive-safety is maintained at all times. A thruster-burn is defined by burn-parameters that include a burn position, a pre-burn velocity, a thruster-burn magnitude and a thruster-burn direction. Passive-safety is maintained when space-vehicle 202 does not penetrate KOZ 200 even if space-vehicle 202 makes no further thruster-burns and becomes a passive object like a rock for a specified duration of time. Thus, KOZ 200 is a boundary condition for flight positions of space-vehicle 200. A desired position and a desired velocity of space-vehicle 202 just prior to each scheduled thruster-burn are calculated for a complete rendezvous operation. The desired positions and desired velocities prior to all scheduled thruster-burns are identified as nominal positions and nominal velocities. A scheduled thruster-burn includes a time for a thruster-burn in addition to the burn-parameters noted above.

FIG. 3 shows KOZ 200 and various positions of space-vehicle 202. A nominal position, p₁, of space-vehicle 202 is calculated based on the rendezvous plan after a previous thruster-burn sending space-vehicle 202 along a nominal trajectory 300. A nominal position, p₂, is calculated for space-vehicle 202 along trajectory 306 after a scheduled thruster-burn at p₁. Trajectory 306 appears curved because space-vehicle 202 is in an orbit around Earth 106 and the RIC coordinate frame is non-inertial. If the space-vehicle 202 is actually at position p₁, then, the scheduled thruster-burn at p₁ would place space-vehicle 202 at nominal position p₂ after a nominal time. However, due to uncertainties of the scheduled thruster-burn and uncertainties of position p₁ and nominal velocity at p₁, space-vehicle 202 could possibly be placed on other trajectories such as trajectories 304 or 308.

In fact, due to various unforeseeable situations such as discussed above, FIG. 3 shows that space-vehicle 202 actually had trajectory 302 and arrived at position p′₁ instead of p₁ and had a different velocity than a planned nominal velocity after the previous thruster-burn. Thus, because the actual position and velocity of space-vehicle 202 are not as planned, it is necessary to ensure that a trajectory resulting from a next thruster-burn maintains passive-safety in connection with KOZ 200.

A position and a velocity in time of an object in orbit which is in proximity to another object in orbit are given by Hill's Equation which is as follows:

$\begin{matrix} {{\begin{pmatrix} {r(t)} \\ {i(t)} \\ {c(t)} \\ {\overset{.}{r}(t)} \\ {\overset{.}{i}(t)} \\ {\overset{.}{c}(t)} \end{pmatrix} = {\begin{pmatrix} {4 - {3\cos \mspace{14mu} \omega \; t}} & 0 & 0 & \left( {\sin \mspace{14mu} \omega \; {t/\omega}} \right) & {2{\left( {1 - {\cos \mspace{14mu} \omega \; t}} \right)/\omega}} & 0 \\ {6\left( {\left( {\sin \mspace{14mu} \omega \; t} \right) - {\omega \; t}} \right)} & 1 & 0 & {2{\left( {{\cos \mspace{14mu} \omega \; t} - 1} \right)/\omega}} & {\left( {4{\left( {\sin \mspace{14mu} \omega \; t} \right)/\omega}} \right) - {3t}} & 0 \\ 0 & 0 & {\cos \mspace{14mu} \omega \; t} & 0 & 0 & {\left( {\sin \mspace{14mu} \omega \; t} \right)/\omega} \\ {3\omega \mspace{14mu} \sin \mspace{14mu} \omega \; t} & 0 & 0 & {\cos \mspace{14mu} \omega \; t} & {2\sin \mspace{14mu} \omega \; t} & 0 \\ {6{\omega \left( {\left( {\cos \mspace{14mu} \omega \; t} \right) - 1} \right)}} & 0 & 0 & {{- 2}\sin \mspace{14mu} \omega \; t} & {{4\left( {\cos \mspace{14mu} \omega \; t} \right)} - 3} & 0 \\ 0 & 0 & {{- {\omega sin}}\mspace{14mu} \omega \; t} & 0 & 0 & {\cos \mspace{14mu} \omega \; t} \end{pmatrix}\begin{pmatrix} {r(0)} \\ {i(0)} \\ {c(0)} \\ {\overset{.}{r}(0)} \\ {\overset{.}{i}(0)} \\ {\overset{.}{c}(0)} \end{pmatrix}}},} & (1) \end{matrix}$

where ω is the orbital angular velocity and {dot over (r)}(t), {dot over (i)}(t), and ċ(t) are first derivatives of the position. Thus, {dot over (r)}(t), {dot over (i)}(t), and ċ(t) represent a velocity {right arrow over (v)}(t). H(t) is a matrix that relates a position and velocity in time relative to a starting position and velocity.

Hill's Equation above includes both linear and non-linear elements and is very difficult to solve for a time that meets some condition such as a closest approach. However, by

1) defining a different boundary condition other than KOZ 200 to form a new KOZ (NKOZ) that subsumes KOZ 200, 2) setting maximum bounds of possible deviations in position, velocity, thruster-burn magnitude, and thruster-burn direction, and 3) making some reasonable approximations relating to thruster-burn deviations, Hill's Equation can be used to derive a set of linear inequalities that define a basket of positions at which a thruster-burn could be executed that results in passive-safety relative to KOZ 200.

The matrix in Hill's equation can be decomposed into four 3×3 sub-matrices as follows:

${H(t)} = {\begin{pmatrix} {H_{11}(t)} & {H_{12}(t)} \\ {H_{21}(t)} & {H_{22}(t)} \end{pmatrix}.}$

In the following discussion, a subscript “nom” indicates a nominal value that is a calculated value based on a planned trajectory of space-vehicle 202. If {right arrow over (p)}_(nom)(t) is a nominal position vector having r_(nom)(t), i_(nom)(t), and c_(nom)(t) components in the RIC coordinate system centered on resident-space-object 102, and {right arrow over (v)}_(nom)(t) is a nominal velocity vector having {dot over (r)}_(nom)(t), {dot over (i)}(t), and ċ_(nom)(t) components, then the nominal position and velocity vectors at time t starting from position {right arrow over (p)}₁ and velocity {right arrow over (v)}₁ vectors are as follows:

$\begin{pmatrix} {{\overset{\rightarrow}{p}}_{nom}(t)} \\ {{\overset{\rightarrow}{v}}_{nom}(t)} \end{pmatrix} = {\begin{pmatrix} {H_{11}(t)} & {H_{12}(t)} \\ {H_{21}(t)} & {H_{22}(t)} \end{pmatrix}{\begin{pmatrix} {\overset{\rightarrow}{p}}_{1} \\ {\overset{\rightarrow}{v}}_{1} \end{pmatrix}.}}$

At time τ after a thruster-burn at p₁, p_(nom) becomes p(τ) which we now designate to be p₂, and {right arrow over (p)}₂=H₁₁(τ){right arrow over (p)}₁+H₁₂(τ){right arrow over (v)}₁ ⁺, where {right arrow over (v)}₁ ⁺ is the velocity of space-vehicle 202 immediately after the thruster-burn. It follows then that a nominal departure velocity is {right arrow over (v)}₁ ⁺ _(nom)(t)=H₁₂ ⁻¹(τ)[{right arrow over (p)}₂(t)−H₁₁(τ){right arrow over (p)}₁]. If {right arrow over (v)}₁ ⁻ _(nom) is the velocity of space-vehicle 202 just before the thruster-burn at p₁ (pre-burn velocity), then a thruster-burn at p₁ to get to p₂ would apply the following change in velocity: {right arrow over (b)}_(nom)={right arrow over (v)}₁ ⁺ _(nom)−{right arrow over (v)}₁ ⁻ _(nom).

However, space-vehicle 202 may not have arrived at p₁ as specified in the planned rendezvous, but actually arrived at p_(1nom)+Δp and a pre-burn velocity of {right arrow over (v)}₁ ⁻ _(nom)(t)+Δ{right arrow over (v)}₁ ⁻. Based on this knowledge, the planned rendezvous can be recovered by readjusting a next scheduled thruster-burn for a new re-planned velocity {right arrow over (v)}₁ ⁺ _(replan)={right arrow over (v)}₁ ⁺ _(nom)−H₁₂ ⁻¹(τ)H₁₁(τ)Δ{right arrow over (p)} from the equations above. Thus, a new re-planned-trajectory would be as follows:

${\begin{pmatrix} {{\overset{\rightarrow}{p}}_{replan}(t)} \\ {{\overset{\rightarrow}{v}}_{replan}(t)} \end{pmatrix} = {\begin{pmatrix} {H_{11}(t)} & {H_{12}(t)} \\ {H_{21}(t)} & {H_{22}(t)} \end{pmatrix}\begin{pmatrix} {{\overset{\rightarrow}{p}}_{1{nom}} + {\Delta \; \overset{\rightarrow}{p}}} \\ {{\overset{\rightarrow}{v}}_{1\mspace{14mu} {nom}}^{+} - {{H_{12}^{- 1}(\tau)}{H_{11}(\tau)}\Delta \; \overset{\rightarrow}{p}}} \end{pmatrix}}},$

and a re-planned thruster-burn would be:

{right arrow over (b)} _(replan) ={right arrow over (b)} _(nom) −H ₁₂ ⁻¹(τ)H ₁₁(τ)Δ{right arrow over (p)}−Δ{right arrow over (v)} ₁ ⁻. (2)

Unfortunately, a further sensor error must be accounted for in order to include all variations. Although Δ{right arrow over (p)} and Δ{right arrow over (v)}₁ ⁻ may be determined by using sensors onboard space-vehicle 202 and/or sensors at ground station 204, these sensors may have accuracy limitations and contribute a sensor error for position, δ{right arrow over (p)}_(err), and velocity, δ{right arrow over (v)}₁ ⁻ _(err). Furthermore, the thruster-burn may not be executed perfectly, resulting in a thruster-burn error, δ{right arrow over (b)}_(err). The actual velocity before a thruster-burn is: {right arrow over (v)}₁ ⁻ _(actual)={right arrow over (v)}₁ ⁻ _(nom)+Δ{right arrow over (v)}₁ ⁻+δ{right arrow over (v)}₁ ⁻ _(err). Thus, the actual departure velocity is: {right arrow over (v)}₁ ⁺ _(actual)={right arrow over (v)}₁ ⁻ _(actual)+({right arrow over (b)}_(replan)+δ{right arrow over (b)}_(err))={right arrow over (v)}₁ ⁺ _(nom)−H₁₂ ⁻¹(τ)H₁₁(τ)Δ{right arrow over (p)}+δ{right arrow over (v)}₁ ⁻ _(err)+δ{right arrow over (b)}_(err). A table of expressions is provided below as a summary of the discussion so far.

Table of Expressions Expression Definition {right arrow over (p)}₂ desired destination τ desired flight time to destination {right arrow over (p)}₁ originally-planned departure point {right arrow over (p)}₁ + Δ{right arrow over (p)} best estimate of departure point {right arrow over (p)}₁ + Δ{right arrow over (p)} + δ{right arrow over (p)}_(err) actual departure point {right arrow over (v)}₁ ⁻ _(nom) originally-planned pre-burn velocity Δ^({right arrow over (v)}) ₁ ⁻ _(nom) + Δ^({right arrow over (v)}) ₁ ⁻ best estimate of pre-burn velocity {right arrow over (v)}₁ ⁻ _(nom) + Δ{right arrow over (v)}₁ ⁻ + δ{right arrow over (v)}₁ ⁻ _(err) actual pre-burn velocity {right arrow over (b)}_(nom) originally-planned burn (delta-V) {right arrow over (b)}_(replan) = {right arrow over (b)}_(nom) − H₁₂ ⁻¹(τ) replanned burn H₁₁(τ)Δ{right arrow over (p)} − Δ{right arrow over (v)}₁ ⁻ {right arrow over (b)}_(nom) − H₁₂ ⁻¹(τ) H₁₁(τ)Δ{right arrow over (p)} − actual burn Δ{right arrow over (v)}₁ ⁻ + δ{right arrow over (b)}_(err) {right arrow over (v)}₁ ⁺ _(nom) originally-planned departure velocity {right arrow over (v)}₁ ⁺ _(nom) − H₁₂ ⁻¹(τ) H₁₁(τ)Δ{right arrow over (p)} replanned departure velocity {right arrow over (v)}₁ ⁺ _(nom) − H₁₂ ⁻¹(τ) H₁₁(τ)Δ{right arrow over (p)} + actual departure velocity δ{right arrow over (v)}₁ ⁻ _(err) + δ{right arrow over (b)}_(err)

Based on the above discussion, an actual trajectory of space-vehicle 202 from {right arrow over (p)}₁ would be:

$\begin{matrix} \begin{matrix} {\begin{pmatrix} {{\overset{\rightarrow}{p}}_{actual}(t)} \\ {{\overset{\rightarrow}{v}}_{actual}(t)} \end{pmatrix} = {\begin{pmatrix} {H_{11}(t)} & {H_{12}(t)} \\ {H_{21}(t)} & {H_{22}(t)} \end{pmatrix}\begin{pmatrix} {{\overset{\rightarrow}{p}}_{1{nom}} + {\Delta \; \overset{\rightarrow}{p}} + {\delta \; {\overset{\rightarrow}{p}}_{err}}} \\ \begin{matrix} {{\overset{\rightarrow}{v}}_{1\mspace{14mu} {nom}}^{+} - {{H_{12}^{- 1}(\tau)}{H_{11}(\tau)}\Delta \; \overset{\rightarrow}{p}} +} \\ {{\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} + {\delta \; {\overset{\rightarrow}{b}}_{err}}} \end{matrix} \end{pmatrix}}} \\ {{= {\begin{pmatrix} {{\overset{\rightarrow}{p}}_{nom}(t)} \\ {{\overset{\rightarrow}{v}}_{nom}(t)} \end{pmatrix} + {\begin{pmatrix} {H_{11}(t)} & {H_{12}(t)} \\ {H_{21}(t)} & {H_{22}(t)} \end{pmatrix}\begin{pmatrix} {{\Delta \; \overset{\rightarrow}{p}} + {\delta \; {\overset{\rightarrow}{p}}_{err}}} \\ \begin{matrix} {{{- {H_{12}^{- 1}(\tau)}}{H_{11}(\tau)}\Delta \; \overset{\rightarrow}{p}} +} \\ {{\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} + {\delta \; {\overset{\rightarrow}{b}}_{err}}} \end{matrix} \end{pmatrix}}}},} \end{matrix} & (3) \end{matrix}$

where {right arrow over (p)}_(nom)(t) and {right arrow over (v)}_(nom)(t) are the position and velocity of space-vehicle 202 after the thruster-burn if there were no errors. That is:

$\begin{pmatrix} {{\overset{\rightarrow}{p}}_{nom}(t)} \\ {{\overset{\rightarrow}{v}}_{nom}(t)} \end{pmatrix} = {\begin{pmatrix} {H_{11}(t)} & {H_{12}(t)} \\ {H_{21}(t)} & {H_{22}(t)} \end{pmatrix}{\begin{pmatrix} {\overset{\rightarrow}{p}}_{1{nom}} \\ {\overset{\rightarrow}{v}}_{1\mspace{14mu} {nom}}^{+} \end{pmatrix}.}}$

From equation (3) above, we can define a deviation of the actual trajectory from the pre-planned trajectory to be:

$\begin{matrix} {{\begin{pmatrix} {\delta \; {\overset{\rightarrow}{p}(t)}} \\ {\delta \; {\overset{\rightarrow}{v}(t)}} \end{pmatrix} = {\begin{pmatrix} {H_{11}(t)} & {H_{12}(t)} \\ {H_{21}(t)} & {H_{22}(t)} \end{pmatrix}{\begin{pmatrix} {{\Delta \; \overset{\rightarrow}{p}} + {\delta \; {\overset{\rightarrow}{p}}_{err}}} \\ {{{- {H_{12}^{- 1}(\tau)}}{H_{11}(\tau)}\Delta \; \overset{\rightarrow}{p}} + {\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} + {\delta \; {\overset{\rightarrow}{b}}_{err}}} \end{pmatrix}.\mspace{85mu} {Thus}}}},\begin{matrix} {\mspace{79mu} {{\delta \; {\overset{\rightarrow}{p}(t)}} = {\left( {{H_{11}(t)}\mspace{14mu} {H_{12}(t)}} \right)\begin{pmatrix} {{\Delta \; \overset{\rightarrow}{p}} + {\delta \; {\overset{\rightarrow}{p}}_{err}}} \\ {{{- {H_{12}^{- 1}(\tau)}}{H_{11}(\tau)}\Delta \; \overset{\rightarrow}{p}} + {\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} + {\delta \; {\overset{\rightarrow}{b}}_{err}}} \end{pmatrix}}}} \\ {= {\left( {{H_{11}(t)}\mspace{14mu} {H_{12}(t)}} \right)\begin{pmatrix} I_{3} & I_{3} & 0 & 0 \\ {{- {H_{12}^{- 1}(\tau)}}{H_{11}(\tau)}} & 0 & I_{3} & I_{3} \end{pmatrix}{\begin{pmatrix} \begin{matrix} \begin{matrix} {\Delta \; \overset{\rightarrow}{p}} \\ {\delta \; {\overset{\rightarrow}{b}}_{err}} \end{matrix} \\ {\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} \end{matrix} \\ {\delta \; {\overset{\rightarrow}{b}}_{err}} \end{pmatrix}.}}} \end{matrix}} & (4) \end{matrix}$

where I₃ denotes a 3×3 identity matrix.

Equation (4) above provides the expression for a deviation of a trajectory which is shown in FIG. 4, where an actual position 404 deviates from a nominal position 402, which corresponds to p_(nom)(t) in the above discussion, by a deviation vector 410 which corresponds to δ{right arrow over (p)}(t) in the above discussion. The nominal position 402 is represented by a vector 406 and the actual position is represented by a vector 408. If KOZ 200 boundary condition is enforced, then it is necessary to ensure that vector 408 does not have a magnitude that is less than radius R of KOZ 200 for any values of the error variables within appropriate bounds. In view of equation (4) above, it is a very difficult problem to determine values of δp(t) when passive-safety is lost.

However, a closed form solution can be found if instead of KOZ 200, a new time dependent KOZ (NKOZ(t)) is defined as a half-space that is bounded by a plane 400 tangential to KOZ 200 at a point where vector 406 intersects KOZ 200 for each position p_(nom)(t) of space-vehicle 202. NKOZ(t) makes it possible to determine, for a particular position p_(nom)(t) of the space-vehicle 202, whether a thruster-burn would send space-vehicle 202 into a possible trajectory that violates passive-safety requirements by penetrating the NKOZ(t). NKOZ(t) is a conservative boundary condition because for a spherical KOZ 200, KOZ 200 is in the NKOZ(t) half-space for every position p_(nom)(t) of space-vehicle 202.

To enforce the NKOZ(t), a magnitude of vector 408 (or {right arrow over (p)}_(actual)(t)) projected onto a unit vector in a direction of vector 406 (or {circumflex over (p)}(t)) must be greater than or equal to R. This condition can be expressed as:

{right arrow over (p)} _(actual)(t)·{circumflex over (p)} _(nom)(t)≧R  (5)

where ∩ is an inner or dot product and {circumflex over (p)}_(nom)(t) is a unit vector of {right arrow over (p)}_(nom)(t). Thus, {circumflex over (p)}_(nom)(t)={right arrow over (p)}_(nom)(t)/∥{right arrow over (p)}_(nom)(t)∥, and ∥{right arrow over (p)}_(nom)(t)∥ is the magnitude of {right arrow over (p)}_(nom)(t). Expanding equation (5) and applying equations (3) and (4) result in:

$\begin{matrix} {{\left. \mspace{79mu} {{{\left( {{\overset{\rightarrow}{p}}_{nom} + {\delta \; {\overset{\rightarrow}{p}(t)}}} \right) \cdot {{\hat{p}}_{nom}(t)}} \geq R}\mspace{79mu} {{{{{\overset{\rightarrow}{p}}_{nom}(t)}} + {\delta \; {{\overset{\rightarrow}{p}(t)} \cdot {{\hat{p}}_{nom}(t)}}}} \geq R}\mspace{79mu} {\left( {{\hat{p}}_{nom}(t)} \right)^{T}\delta \; {\overset{\rightarrow}{p}(t)}}} \right) \geq {R - {{{\overset{\rightarrow}{p}}_{nom}(t)}}}}{{\left( {{\hat{p}}_{nom}(t)} \right)^{T}\mspace{14mu} \left( {{H_{11}(t)}\mspace{14mu} {H_{12}(t)}} \right)\begin{pmatrix} I_{3} & I_{3} & 0 & 0 \\ {{- {H_{12}^{- 1}(\tau)}}{H_{11}(\tau)}} & 0 & I_{3} & I_{3} \end{pmatrix}\begin{pmatrix} \begin{matrix} \begin{matrix} {\Delta \; \overset{\rightarrow}{p}} \\ {\delta \; {\overset{\rightarrow}{p}}_{err}} \end{matrix} \\ {\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} \end{matrix} \\ {\delta \; {\overset{\rightarrow}{b}}_{err}} \end{pmatrix}} \geq {R - {{{\overset{\rightarrow}{p}}_{nom}(t)}} - {\left( {{\hat{p}}_{nom}(t)} \right)^{T}\mspace{14mu} \left( {{H_{11}(t)}\mspace{14mu} {H_{12}(t)}} \right)\begin{pmatrix} I_{3} & I_{3} & 0 & 0 \\ {{- {H_{12}^{- 1}(\tau)}}{H_{11}(\tau)}} & 0 & I_{3} & I_{3} \end{pmatrix}\begin{pmatrix} \begin{matrix} \begin{matrix} {\Delta \; \overset{\rightarrow}{p}} \\ {\delta \; {\overset{\rightarrow}{p}}_{err}} \end{matrix} \\ {\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} \end{matrix} \\ {\delta \; {\overset{\rightarrow}{b}}_{err}} \end{pmatrix}}} \leq {{{{\overset{\rightarrow}{p}}_{nom}(t)}} - {R.}}}} & (6) \end{matrix}$

For simplification purposes, 3×1 vectors {right arrow over (c)}₁(t), {right arrow over (c)}₂(t), {right arrow over (c)}₃(t), and {right arrow over (c)}₄(t) are defined by:

$\begin{bmatrix} {{\overset{\rightarrow}{c}}_{1}^{T}(t)} & {{\overset{\rightarrow}{c}}_{2}^{T}(t)} & {{\overset{\rightarrow}{c}}_{3}^{T}(t)} & {{\overset{\rightarrow}{c}}_{4}^{T}(t)} \end{bmatrix} = {{- \left( {{\hat{p}}_{nom}(t)} \right)^{T}}\left( {{H_{11}(t)}\mspace{14mu} {H_{12}(t)}} \right){\begin{pmatrix} I_{3} & I_{3} & 0 & 0 \\ {{- {H_{12}^{- 1}(\tau)}}{H_{11}(\tau)}} & 0 & I_{3} & I_{3} \end{pmatrix}.}}$

Thus:

{right arrow over (c)} ₁ ^(T)(t)=−({circumflex over (p)} _(nom)(t))^(T) [H ₁₁(t)−H ₁₂(t)H ₁₂ ⁻¹(τ)H ₁₁(τ)];

{right arrow over (c)} ₂ ^(T)=−({right arrow over (p)} _(nom)(t))^(T) H ₁₁(t);

{right arrow over (c)} ₃ ^(T)=−({right arrow over (p)} _(nom)(t))^(T) H ₁₂(t); and

{right arrow over (c)} ₄ ^(T)=−({right arrow over (p)} _(nom)(t))^(T) H ₁₂(t).

Equation (6) can now be written as:

$\begin{matrix} {{{{\begin{bmatrix} {{\overset{\rightarrow}{c}}_{1}^{T}(t)} & {{\overset{\rightarrow}{c}}_{2}^{T}(t)} & {{\overset{\rightarrow}{c}}_{3}^{T}(t)} & {{\overset{\rightarrow}{c}}_{4}^{T}(t)} \end{bmatrix}\begin{pmatrix} \begin{matrix} \begin{matrix} {\Delta \; \overset{\rightarrow}{p}} \\ {\delta \; {\overset{\rightarrow}{p}}_{err}} \end{matrix} \\ {\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} \end{matrix} \\ {\delta \; {\overset{\rightarrow}{b}}_{err}} \end{pmatrix}} \leq {{{{\overset{\rightarrow}{p}}_{nom}(t)}} - R}},{or}}\text{}{{{{{\overset{\rightarrow}{c}}_{1}^{T}(t)}\Delta \; \overset{\rightarrow}{p}} + {{{\overset{\rightarrow}{c}}_{2}^{T}(t)}\delta \; {\overset{\rightarrow}{p}}_{{err} +}{{\overset{\rightarrow}{c}}_{3}^{T}(t)}\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} + {{{\overset{\rightarrow}{c}}_{4}^{T}(t)}\delta \; {\overset{\rightarrow}{b}}_{err}}} \leq {{{{\overset{\rightarrow}{p}}_{nom}(t)}} - {R.}}}} & (7) \end{matrix}$

Equation (7) can be further improved by bounding δ{right arrow over (p)}_(err), δ{right arrow over (v)}₁ ⁻ _(err), and δ{right arrow over (b)}_(err) to obtain a solution that can be implemented by a rendezvous apparatus. The magnitude of the position and velocity sensor error can be bounded to be less than or equal to δp_(max) and δv_(max). Thus, ∥δ{right arrow over (p)}_(err)∥≦δp_(max) and ∥δ{right arrow over (v)}₁ ⁻ _(err)∥≦δv_(max). This leads to: |{right arrow over (c)}₂ ^(T)(t)δ{right arrow over (p)}_(err)|≦∥{right arrow over (c)}₂(t)∥δp_(max) and |{right arrow over (c)}₃ ^(T)(t)δ{right arrow over (v)}₁ ⁻ _(err)|≦∥{right arrow over (c)}₃(t)∥δv_(max). Thus, equation (7) above can be written as: {right arrow over (c)}₁ ^(T)(t)Δ{right arrow over (p)}+∥{right arrow over (c)}₂(t)∥δp_(max)+∥{right arrow over (c)}₃(t)∥δv_(max)+{right arrow over (c)}₄ ^(T)(t)δ{right arrow over (b)}_(err)≦∥{right arrow over (p)}_(nom)(t)∥−R. Rearranging, this equation becomes:

{right arrow over (c)} ₁ ^(T)(t)Δ{right arrow over (p)}+{right arrow over (c)} ₄ ^(T)(t)δ{right arrow over (b)} _(err) ≦∥{right arrow over (p)} _(nom)(t)∥−R−∥{right arrow over (c)} ₂(t)∥δp _(max) −∥{right arrow over (c)} ₃(t)∥δv _(max).  (8)

FIG. 5 shows an example of thruster-burn error, δ{right arrow over (b)}_(err). Vector 500 represents a re-planned thruster-burn {right arrow over (b)}_(replan) having a re-planned magnitude represented by a center of disk 502. Possible errors in executing the planned thruster-burn may be represented as a cone having a cone angle of θ, and disks 504 and 506 distanced from disk 502 by ±ρ. For large values of θ, disks 502-506 would be sections of spheres. But, for small values of θ, such as those representing thruster-burn directional errors, disks 502-506 may be reasonably illustrated as disks. An angle error component of the thruster-burn may be represented by {right arrow over (θ)} with elements θ₁, θ₂, and θ₃ for roll, pitch and yaw, and a magnitude error component may be represented by ρ. An actual thruster-burn may be expressed as:

{right arrow over (b)} _(actual)=(1+ρ)R _(θ) {right arrow over (b)} _(replan),

where R_(θ) is a rotational matrix based on {right arrow over (θ)} that is well known in the art. See, e.g., John J. Craig, Introduction to Robotics; Mechanics and Control, Chapter 2 and Appendix B, Second Edition, Addison-Wesley, Reading, Mass., 1989; and Wikipedia at: http://en.wikipedia.org/wiki/Rotation_matrix#General_rotations. To a first order approximation, R_(θ) may be expressed as:

$R_{\theta} = {\begin{pmatrix} 1 & {- \theta_{3}} & \theta_{2} \\ \theta_{3} & 1 & {- \theta_{1}} \\ {- \theta_{2}} & \theta_{1} & 1 \end{pmatrix}.}$

Based on the above, thruster-burn error may be expressed as:

$\begin{matrix} {{\delta \; {\overset{\rightarrow}{b}}_{err}} = {{\overset{\rightarrow}{b}}_{actual} - {\overset{\rightarrow}{b}}_{replan}}} \\ {= {{\left( {1 + \rho} \right)R_{\theta}{\overset{\rightarrow}{b}}_{replan}} - {\overset{\rightarrow}{b}}_{replan}}} \\ {= {{\begin{pmatrix} {1 + \rho} & {{- \left( {1 + \rho} \right)}\theta_{3}} & {\left( {1 + \rho} \right)\theta_{2}} \\ {\left( {1 + \rho} \right)\theta_{3}} & {1 + \rho} & {{- \left( {1 + \rho} \right)}\theta_{1}} \\ {{- \left( {1 + \rho} \right)}\theta_{2}} & {\left( {1 + \rho} \right)\theta_{1}} & {1 + \rho} \end{pmatrix}{\overset{\rightarrow}{b}}_{replan}} - {{\overset{\rightarrow}{b}}_{replan}.}}} \end{matrix}$

In reality, ρθ_(i)<<1, for i=1, 2, and 3. Thus, neglecting second order terms,

$\begin{matrix} {{\delta \; {\overset{\rightarrow}{b}}_{err}} = {{\begin{pmatrix} {1 + \rho} & {- \theta_{3}} & \theta_{2} \\ \theta_{3} & {1 + \rho} & {- \theta_{1}} \\ {- \theta_{2}} & \theta_{1} & {1 + \rho} \end{pmatrix}{\overset{\rightarrow}{b}}_{replan}} - {\overset{\rightarrow}{b}}_{replan}}} \\ {= {\begin{pmatrix} \rho & {- \theta_{3}} & \theta_{2} \\ \theta_{3} & \rho & {- \theta_{1}} \\ {- \theta_{2}} & \theta_{1} & \rho \end{pmatrix}{{\overset{\rightarrow}{b}}_{replan}.}}} \end{matrix}$

If the 3×3 matrix is represented by S(ρ, {right arrow over (θ)}), then the above equation becomes: δ{right arrow over (b)}_(err)=S(ρ, {right arrow over (θ)}){right arrow over (b)}_(replan). Applying equation (2), the thruster-burn error becomes:

δ{right arrow over (b)} _(err) =S(ρ,{right arrow over (θ)})({right arrow over (b)} _(nom) −H ₁₂ ⁻¹(τ)H ₁₁(τ)Δ{right arrow over (p)}−Δ{right arrow over (v)} ₁ ⁻).  (9)

Combining equations (8) and (9) results in:

{right arrow over (c)} ₁ ^(T) Δ{right arrow over (p)}+{right arrow over (c)} ₄ ^(T)(t)[S(ρ,{right arrow over (θ)})({right arrow over (b)} _(nom) −H ₁₂ ⁻¹(τ)H ₁₁(τ)Δ{right arrow over (p)}−Δ{right arrow over (v)} ₁ ⁻)]≦∥{right arrow over (p)} _(nom)(t)∥−R−∥{right arrow over (c)} ₂(t)∥δp _(max) −∥{right arrow over (c)} ₃(t)∥δv _(max).  (10)

If equation (10) is satisfied for all |ρ|≦ρ_(max), and ∥{right arrow over (θ)}∥≦θ_(max), then passive-safety is guaranteed. This guarantee is achieved if equation (10) is satisfied for ρ=±ρ_(max) and {right arrow over (θ)}=[±θ_(max), ±θ_(max), ±θ_(max)], where each of the plus-or-minus degrees of freedom is independent of other degrees of freedom. A proof of the above assertion is provided in section 6 of Provisional Application No. 61/563,259 filed on Nov. 11, 2011, which is hereby incorporated by reference in its entirety. Thus, equation (10) may be expanded into 16 equations for all possibilities of ρ=±ρ_(max), θ₁=±θ_(max), θ₂=±_(max), and θ₃=±θ_(max). Constraining each individually is more conservative than constraining ∥{right arrow over (θ)}∥≦θ_(max) because more vectors {right arrow over (θ)} satisfy |θ_(j)|≦θ_(max) for j=1, 2, and 3 than satisfy ∥{right arrow over (θ)}∥≦θ_(max).

All 16 equations may be written as: {right arrow over (c)}₁ ^(T)(t)Δ{right arrow over (p)}+{right arrow over (c)}₄ ^(T)(t)[S(±ρ_(max),±{right arrow over (θ)}_(max))({right arrow over (b)}_(nom)−H₁₂ ⁻¹(τ)H₁₁(τ)Δ{right arrow over (p)}−Δ{right arrow over (v)}₁ ^(−)]≦∥{right arrow over (p)}) _(nom)(t)∥−R−∥{right arrow over (c)}₂(t)∥δp_(max)−∥{right arrow over (c)}₃(t)∥δv_(max), where it is understood that the notation “±{right arrow over (θ)}_(max)” implies plus-or-minus on scalar components of {right arrow over (θ)} independently from one another, and independently from the plus-or-minus on p_(max). The above equation can be rewritten as:

[{right arrow over (c)} ^(T)(t)−{right arrow over (c)} ₄ ^(T)(t)S(±ρ_(max) ,±{right arrow over (θ)} _(max))H ₁₂ ⁻¹(τ)H ₁₁(τ)]Δ{right arrow over (p)}+[−{right arrow over (c)} ₄ ^(T)(t)S(±ρ_(max) ,±{right arrow over (θ)} _(max))]Δ{right arrow over (v)} ₁ ⁻ ≦∥{right arrow over (p)} _(nom)(t)∥−R−∥{right arrow over (c)} ₂(t)∥δp _(max) −∥{right arrow over (c)}(t)∥δv _(max) −{right arrow over (c)} ₄ ^(T)(t)S(±ρ_(max) ,±{right arrow over (θ)} _(max)){right arrow over (b)} _(nom).  (11)

To eliminate equation (11)'s dependence on Δ{right arrow over (v)}₁ ⁻, an assumption that ∥Δ{right arrow over (v)}₁ ⁻∥Δv_(max) is made. This means that a pre-thruster-burn velocity error (i.e., the deviation of velocity from a nominal velocity) must be within Δv_(max). Based on this assumption, equation (11) can be written as:

[ĉ ₁ ^(T)(t)−ĉ ₄ ^(T)(t)S(±ρ_(max) ,±{circumflex over (θ)} _(max))H ₁₂ ⁻¹(τ)H ₁₁(τ)]Δ{right arrow over (p)}+∥{right arrow over (c)} ₄ ^(T)(t)S(±ρ_(max) ,±{right arrow over (θ)} _(max))∥Δv _(max) ≦∥{right arrow over (p)} _(nom)(t)∥−R−∥{right arrow over (c)} ₂(t)∥δp _(max) −∥{right arrow over (c)} ₃(t)∥δv _(max) −{right arrow over (c)} ^(T)(t)S(±ρ_(max) ,±{right arrow over (θ)} _(max)){right arrow over (b)} _(nom).  (12)

Thus, if equation (12) is satisfied, then equation (11) is also satisfied. Equation (12) can be rearranged as:

[{right arrow over (c)} ₁ ^(T)(t)−{right arrow over (c)} ₄ ^(T)(t)S(±ρ_(max) ,±{right arrow over (θ)} _(max))H ₁₂ ⁻¹(τ)H ₁₁(τ)]Δ{right arrow over (p)}≦∥{right arrow over (p)} _(nom)(t)∥−R−∥{right arrow over (c)} ₂(t)∥δp _(max) −∥ĉ ₃(t)∥δv _(max) −ĉ ₄ ^(T)(t)S(±ρ_(max) ,±{right arrow over (θ)} _(max)){right arrow over (b)} _(nom) −∥{right arrow over (c)} ₄ ^(T)(t)S(±ρ_(max) ,±{circumflex over (θ)} _(max).  (13)

In equation (13), all the terms to the right of the inequality are known quantities for a specific time t_(i). Thus, equation (13) provides computable limits on Δ{right arrow over (p)} for any specific time t_(i) to achieve passive-safety.

As a practical matter, the right side of equation (13) cannot be zero to avoid division by zero that may occur in future calculations. The right side of the equation becomes zero if a trajectory touches a surface of KOZ 200 without penetrating it. If this condition is detected, the user is notified that passive-safety cannot be guaranteed.

For convenience, new variables are introduced to simplify equation (13) as follows:

{right arrow over (c)} _(p) ^(T)(t)={right arrow over (c)} ₁(t)−{right arrow over (c)} ₄ ^(T)(t)S(±ρ_(max) ,±{right arrow over (θ)} _(max))H ₁₂ ⁻¹(τ)H ₁₁(τ); and

β(t)=∥{right arrow over (p)} _(nom)(t)∥−R−∥{right arrow over (c)} ₂(t)∥δp _(max) −∥{right arrow over (c)} ₃(t)∥δv _(max) −ĉ ₄ ^(T)(t)S(±ρ_(max) ,±{right arrow over (θ)} _(max)){right arrow over (b)} _(nom) −∥{right arrow over (c)} ₄ ^(T)(t)S(±ρ_(max) ,±{right arrow over (θ)} _(max))∥Δv _(max).  (14)

Thus, equation (13) can now be written as:

{right arrow over (c)} _(p) ^(T)(t)Δ{right arrow over (p)}≦β( t).  (15)

As noted earlier, there is one NKOZ(t_(i)) for each nominal position p_(i) of space-vehicle 202 that is propagated from p₁, for example. Thus, passive-safety can be ensured only for positions after a thruster-burn for which a position p_(i) is calculated. For example, if it is determined that passive-safety is to be ensured for 48 hours after each thruster-burn, and p_(i) is calculated for each minute after the thruster-burn, then equation (15) must be processed for 48×60=2880 times. Thus, runs from 1 to 2880 which means 2880 half-space NKOZs are applied as boundary conditions.

As noted above, for each NKOZ(t_(i)) half-space, equation (15) includes 16 conditions (ρ=±ρ_(max), θ₁=±θ_(max), θ₂=±θ_(max), and θ₃=±θ_(max)). Thus, equation (15) must be processed once for each of these 16 conditions. For 2880 NKOZ(t_(i)) half-spaces, equation (15) must be processed 46,080 times.

In view of the above, equation (15) may be expressed as a system of inequalities as follows:

${\begin{pmatrix} {\overset{\rightarrow}{c}}_{p\; 1}^{T} \\ {\overset{\rightarrow}{c}}_{p\; 2}^{T} \\ \vdots \\ {\overset{\rightarrow}{c}}_{p\; n}^{T} \end{pmatrix}\Delta \; \overset{\rightarrow}{p}} \leq \begin{pmatrix} \beta_{1} \\ \beta_{2} \\ \vdots \\ {\beta_{n},} \end{pmatrix}$

where n=46,080 for 48 hours of passive-safety.

${{{If}\mspace{14mu} C_{P}} = {{\begin{pmatrix} {\overset{\rightarrow}{c}}_{p\; 1}^{T} \\ {\overset{\rightarrow}{c}}_{p\; 2}^{T} \\ \vdots \\ {\overset{\rightarrow}{c}}_{p\; n}^{T} \end{pmatrix}\mspace{14mu} {and}\mspace{14mu} \overset{\rightarrow}{\beta}} = \begin{pmatrix} \beta_{1} \\ \beta_{2} \\ \vdots \\ \beta_{n} \end{pmatrix}}},$

then the above equation can be written as:

C _(P) Δ{right arrow over (p)}≦{right arrow over (β)}.  (16)

Each of C_(P) and {right arrow over (β)} has 46,080 rows. This large number of inequalities (thus required processing power) may be reduced by identifying non-redundant inequalities of equation (16).

Each of the 46,080 inequalities defines a half-space boundary on Δ{right arrow over (p)}. Thus, equation (15) defines an intersection of 46,080 half-spaces where each half-space is defined by one inequality. Solving this large system of inequalities can therefore be transformed into solving for the intersection of half-spaces which is a well-studied problem in computational geometry. A preferred way to solve for the intersection of half-spaces is by mapping each inequality of equation (16) from real-space into a point in a dual-space and identifying points on a convex hull of all such points. See, e.g., Franco P. Preparata and Michael Ian Shamos, Computational Geometry: An Introduction, Springer-Verlag, pages 104-124, 141-146, and 315-320, New York, 1985.

FIG. 6 shows exemplary NKOZ half-spaces represented as planes 600 and 602. As discussed above, there are 2880 NKOZ half-spaces for 48 hours in one minute increments. Each NKOZ results in 16 inequalities that define 16 half-spaces that are boundaries for a set of passively-safe thruster-burn positions p′₁ with reference to FIG. 3, for example. As shown in FIG. 6, NKOZ half-space 600 corresponds to 16 half-spaces that are represented by planes 604-606, and NKOZ half-space 602 corresponds to 16 half-spaces represented by planes 608-610. Thirty two half-spaces are mapped into dual-space as thirty two points represented by points 612-618; each half-space in real-space maps into a point in dual-space.

Once all the 46,080 half-spaces in real-space are mapped into dual-space, a convex hull process may be performed to identify those points in dual-space that are on the convex hull. The convex hull is a smallest polyhedron that contains all the points in dual-space. FIG. 7 shows an example convex hull 700 that is formed by connecting points 614 and 616 among other points that are on a perimeter surface. As an example, points 612 and 618 are not on the perimeter surface and thus are not on convex hull 700. The points on convex hull 700 identify non-redundant half-spaces in real-space that are boundaries for a set of passively-safe thruster-burn positions p′₁. Preparata and Shamos referenced above provide a method for forming the convex hull. Other algorithms may also be used such as the gift-wrap algorithm.

In the gift-wrap algorithm, first form a plane parallel to the XY plane that passes through a point with a lowest Z coordinate. Rotate this plane until another point is found. Rotate the plane about a line (an edge) between the two points until a third point is found. A triangle formed by the above three points forms a first face of the convex hull. Continue rotating the plan about one of the edges of the triangle to find another face, and so one until all faces are found.

Section 7 of the incorporated Provisional Application No. 61/563,259, demonstrates that half-space constraints corresponding to points internal to a convex hull are satisfied if constraints of points on the convex hull are satisfied. This fact means that the constraints of internal points in dual-space are redundant to the constraints of the points on the convex hull. Thus, only constraints of points on the convex hull need to be identified and mapped back into real-space to form a polyhedron or basket of estimated positions from which a passively-safe thruster-burn may be executed.

The convex hull may be reduced in complexity by introducing artificial constraints on Δ{right arrow over (p)} to bound its size to a largest Δ{right arrow over (p)} that may reasonably be expected to occur. The artificial points form a convex hull surface portion that makes interior those potentially large number of points that would have formed a corresponding convex hull portion. For example, if 500 meters is determined to be greater than any expected ∥Δ{right arrow over (p)}∥ that can occur in real-life experience, then the following inequalities can be appended to equation (16):

${\begin{pmatrix} 1 & 0 & 0 \\ {- 1} & 0 & 0 \\ 0 & 1 & 0 \\ 0 & {- 1} & 0 \\ 0 & 0 & 1 \\ 0 & 0 & {- 1} \end{pmatrix}\Delta \; \overset{\rightarrow}{p}} \leq {\begin{pmatrix} 500 \\ 500 \\ 500 \\ 500 \\ 500 \\ 500 \end{pmatrix}.}$

One or more of these point is likely to appear on the convex hull, thus, eliminating a plurality of other points from the convex hull.

After points on the convex hull are identified, these identified points may be mapped back into real-space as half-spaces which when merged together form a polyhedron (the basket) that encloses those position values from which a thruster-burn can be safely executed. Going back to FIG. 7, points 614 and 616 (among other points on convex hull 700) may be mapped back into real-space half-spaces represented by planes 606 and 608 which are boundary conditions on a basket of passively-safe positions. Edges of convex hull 700 map to the edges of the basket. Faces of convex hull 700 map to vertices of the basket. See, e.g., Preparata and Shamos pages 24-26 and 307-308. As noted in the Provisional Application No. 61/563,259, the above discussed three dimensional polyhedron may be reduced to a two dimensional polygon by eliminating one of the coordinates such as the C coordinate so that space-vehicle 202 may maneuver only in a plane of the orbit 104, for example. This simplification also makes the thruster-burn angle error θ a scalar, which reduces the number of constraints from 16 for each time sample to 4 per time sample.

In the above discussion, it is assumed that each thruster-burn is adjusted to compensate for position errors seen so far by aiming space-vehicle 202 at a next nominal position. However, only slight modifications to equations (3), (4), (7), (8) and (13) are needed if each thruster-burn is executed as originally planned. The following provides equation differences if no adjustment is made in the thruster-burn.

Equations (3), (4), (7), (8), (13), and (14) are modified to equations (3A), (4A), (7A), (8A), (13A), and (14A) as follows:

$\begin{matrix} {{\begin{pmatrix} {{\overset{\rightarrow}{p}}_{nom}(t)} \\ {{\overset{\rightarrow}{v}}_{nom}(t)} \end{pmatrix} = {\begin{pmatrix} {{\overset{\rightarrow}{p}}_{nom}(t)} \\ {{\overset{\rightarrow}{v}}_{nom}(t)} \end{pmatrix} + {\begin{pmatrix} {H_{11}(t)} & {H_{12}(t)} \\ {H_{21}(t)} & {H_{22}(t)} \end{pmatrix}\begin{pmatrix} {{\Delta \; \overset{\rightarrow}{p}} + {\delta \; {\overset{\rightarrow}{p}}_{err}}} \\ {{\Delta \; {\overset{\rightarrow}{v}}_{1}^{-}} + {\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} + {\delta \; {\overset{\rightarrow}{b}}_{err}}} \end{pmatrix}}}};} & \left( {3A} \right) \\ {\mspace{79mu} {{{\delta \; {\overset{\rightarrow}{p}(t)}} = {\left( {{H_{11}(t)}\mspace{14mu} {H_{12}(t)}} \right)\begin{pmatrix} I_{3} & 0 & I_{3} & 0 & 0 \\ 0 & I_{3} & 0 & I_{3} & I_{3} \end{pmatrix}\begin{pmatrix} \begin{matrix} \begin{matrix} {\Delta \; \overset{\rightarrow}{p}} \\ {\Delta \; {\overset{\rightarrow}{v}}_{1}^{-}} \\ {\delta \; {\overset{\rightarrow}{p}}_{err}} \end{matrix} \\ {\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} \end{matrix} \\ {\delta \; {\overset{\rightarrow}{b}}_{err}} \end{pmatrix}}};}} & \left( {4A} \right) \\ {{{{{{\overset{\rightarrow}{c}}_{1}^{T}(t)}\Delta \; \overset{\rightarrow}{p}} + {{{\overset{\rightarrow}{c}}_{3}^{T}(t)}\Delta \; {\overset{\rightarrow}{v}}_{1}^{-}} + {{{\overset{\rightarrow}{c}}_{2}^{T}(t)}\delta \; {\overset{\rightarrow}{p}}_{err}} + {{{\overset{\rightarrow}{c}}_{3}^{T}(t)}\delta \; {\overset{\rightarrow}{v}}_{1\mspace{14mu} {err}}^{-}} + {{{\overset{\rightarrow}{c}}_{4}^{T}(t)}\delta \; {\overset{\rightarrow}{b}}_{err}}} \leq {{{{\overset{\rightarrow}{p}}_{nom}(t)}} - R}},\mspace{79mu} {\left( {{Here},\; {{{\overset{\rightarrow}{c}}_{1}^{T}(t)} = {- {\left( {{\hat{p}}_{nom}(t)} \right)^{T}\left\lbrack {H_{11}(t)} \right\rbrack}}}} \right);}} & \left( {7A} \right) \\ {{{{{{\overset{\rightarrow}{c}}_{1}^{T}(t)}\Delta \; \overset{\rightarrow}{p}} + {{{\overset{\rightarrow}{c}}_{3}^{T}(t)}\Delta \; {\overset{\rightarrow}{v}}_{1}^{-}} + {{{\overset{\rightarrow}{c}}_{4}^{T}(t)}\delta \; {\overset{\rightarrow}{b}}_{err}}} \leq {{{{\overset{\rightarrow}{p}}_{nom}(t)}} - R - {{{{\overset{\rightarrow}{c}}_{2}(t)}}\delta \; p_{\max}} - {{{{\overset{\rightarrow}{c}}_{3}(t)}}\delta \; v_{\max}}}};} & \left( {8A} \right) \\ {{{{\left\lbrack {{{\overset{\rightarrow}{c}}_{1}^{T}(t)} - {{{\overset{\rightarrow}{c}}_{4}^{T}(t)}{S\left( {{\pm \rho_{\max}},{\pm {\overset{\rightarrow}{\theta}}_{\max}}} \right)}{H_{12}^{- 1}(\tau)}{H_{11}(\tau)}}} \right\rbrack \Delta \; \overset{\rightarrow}{p}} \leq {{{{\overset{\rightarrow}{p}}_{nom}(t)}} - R - {{{{\overset{\rightarrow}{c}}_{2}(t)}}\delta \; p_{\max}} - {{{{\overset{\rightarrow}{c}}_{3}(t)}}\left( {{\delta \; v_{\max}} + {\Delta \; v_{\max}}} \right)} - {{{\overset{\rightarrow}{c}}_{4}^{T}(t)}{S\left( {{\pm \rho_{\max}},{\pm {\overset{\rightarrow}{\theta}}_{\max}}} \right)}{\overset{\rightarrow}{b}}_{nom}} - {{{{{\overset{\rightarrow}{c}}_{4}^{T}(t)}{S\left( {{\pm \rho_{\max}},{\pm {\overset{\rightarrow}{\theta}}_{\max}}} \right)}}}\Delta \; v_{\max}}}};}{\quad\mspace{79mu} {and}}} & \left( {13A} \right) \\ {{\beta (t)} = {{{{\overset{\rightarrow}{p}}_{nom}(t)}} - R - {{{{\overset{\rightarrow}{c}}_{2}(t)}}\delta \; p_{\max}} - {{{{\overset{\rightarrow}{c}}_{3}(t)}}\left( {{\delta \; v_{\max}} + {\Delta \; v_{\max}}} \right)} - {{{\overset{\rightarrow}{c}}_{4}^{T}(t)}{S\left( {{\pm \rho_{\max}},{\pm {\overset{\rightarrow}{\theta}}_{\max}}} \right)}{\overset{\rightarrow}{b}}_{nom}} - {{{{{\overset{\rightarrow}{c}}_{4}^{T}(t)}{S\left( {{\pm \rho_{\max}},{\pm {\overset{\rightarrow}{\theta}}_{\max}}} \right)}}}\Delta \; {v_{\max}.}}}} & \left( {14A} \right) \end{matrix}$

FIG. 8 shows a block diagram of an exemplary rendezvous controller 800 that includes a rendezvous processor 802, a space-vehicle data processor 804, a dual-space processor 806, a user interface 808, a space-vehicle interface 810 and a memory 812. All of the above components may be coupled together by a bus 814. Although a bus-architecture is shown as an example, other component interconnections may be used as is well known. For example, a parallel connection between components may be used where high bandwidth may be required or where tight timing requirements are present. However, for low bandwidth and/or loose timing situations, serial connections may be used. Rendezvous processor 802, space-vehicle data processor 804, and/or dual-space processor 812 may be implemented using various technologies such as PLAs, PALs, applications specific integrated circuits (ASICs), off the shelf processors, and/or software executed in one or more general purpose or special purpose processors using one or more CPUs, for example. Memory 806 may be implemented using hard disk, optical disk, and/or RAM/ROM in either volatile or nonvolatile technologies. User interface 808 may be a keyboard, a mouse or other devices for interfacing with a person such as voice recognition devices, etc., and space-vehicle interface 810 may include transmitters and receivers using various communication bands and/or optical bands. Although FIG. 8 shows rendezvous controller 800 to include user interface 808 and space-vehicle interface 810 suitable for installation at ground-station 204, these interfaces 808 and 810 may not be needed if rendezvous controller 800 is disposed in a space-vehicle such as space-vehicle 202, for example.

When a signal is received from user interface 808 indicating that a space-vehicle is ready to perform rendezvous with a resident-space-object, rendezvous processor 802 determines a next scheduled thruster-burn based on planned rendezvous data and directs space-vehicle data processor 804 to obtain from memory 812 a nominal position of space-vehicle 202 at a time of the next scheduled burn. After the nominal position of space-vehicle 202 at the time of the next scheduled thruster-burn is obtained, space-vehicle data processor 804 propagates the position of space-vehicle 202 for time samples up to maximum elapsed time T beyond the time of the next scheduled thruster-burn, and then calculates all the inequalities for each of the time samples. For example, T may be 48 hours divided into 2880 one minute intervals, and space-vehicle data processor 804 calculates all the inequalities for all 2880 positions. Space-vehicle data processor 804 retrieves maximum error limits from memory 812 such as δp_(max), δv_(max), Δv_(max), ρ_(max), and θ_(max), for example, and generates values for the inequalities which may be stored in memory 812. Thus, 46,080 inequalities may be calculated.

After space-vehicle data processor 804 completes generating the inequalities, dual-space processor 806 maps the inequalities into dual-space, maps into dual-space artificial constraints based on data for a maximum ∥Δ{right arrow over (p)}∥ retrieved from memory 812, forms a convex hull for all mapped points, and identifies points on the convex hull. Dual-space processor 806 maps the identified points back into real-space to form a basket of thruster-burn positions (burn locations) that will result in passive-safety after the next thruster-burn and places the real-space inequality values (basket inequalities) corresponding to the identified points into memory 812.

After the identified points on the convex hull are mapped into real-space inequality values, rendezvous processor 802 communicates with the space-vehicle through space-vehicle interface 810 to obtain sensor data to determine a detected position and velocity of the space-vehicle. After receipt of the sensor data, the detected position of the space-vehicle is propagated to a position of the next scheduled thruster-burn. Then, rendezvous processor 802 determines if all the basket inequalities are satisfied by the propagated position of the space-vehicle. If all the basket inequalities are satisfied, then rendezvous processor 802 determines whether the scheduled thruster-burn time has arrived. If the scheduled thruster-burn time has not yet arrived, then rendezvous processor 802 may continue to monitor the space-vehicle sensor data until the scheduled thruster-burn time has arrived. If all the basket inequalities are still satisfied, the scheduled thruster-burn is executed. If at any time prior to the scheduled thruster-burn time any of the basket inequalities are not satisfied, then a warning signal is output to the user. If any basket inequality is not satisfied when the time for the next scheduled thruster-burn arrives, a burn-reject signal is transmitted to the space-vehicle and/or output to a user through user interface 808 such as an alarm, for example, to alert the user of the situation.

FIG. 9 shows a flow chart 900 of an exemplary process for determining whether a next scheduled thruster-burn of a space-vehicle results in passive-safety relative to a resident-space-object. In step 902, the process determines a time of the next scheduled thruster-burn, its nominal position, and its nominal pre-burn velocity, and goes to step 904. In step 904, the process propagates positions from the position of the next scheduled thruster-burn to a position corresponding to a maximum elapsed time T after the next scheduled thruster-burn. Then, the process calculates a set of inequalities of equation (15) from a time of the next scheduled thruster-burn to the maximum elapsed time T, and the process goes to step 906. For example, the maximum elapsed time may be 48 hours and the time increment may be one minute. Thus, for each minute increment, the process determines a planned position of the space-vehicle, and calculates all the inequalities of equation (15).

In step 906, the process maps half-spaces in real-space corresponding to the inequalities into points in dual-space, and goes to step 908. In step 908, the process forms a convex hull of all points in dual space and identifies points on the convex hull, and the process goes to step 910. The process may add additional inequalities that correspond to a maximum deviation of a position of the space-vehicle from the planned position to simplify the convex hull. In step 910, the identified points on the convex hull are mapped from dual-space into identified half-spaces in real-space that define a basket of positions from which the next scheduled thruster-burn will result in passive-safety, and the process goes to step 912.

In step 912, the process acquires a current detected position and velocity of the space-vehicle relative to the resident-space-object, and goes to step 914. The detected position and velocity may be obtained from sensors onboard the space-vehicle or position and velocity detection equipment from ground-station equipment. In step 914, the process propagates the detected position and velocity forward to the time of the scheduled thruster-burn, and determines if all the inequalities corresponding to the identified half-spaces are satisfied. If all the inequalities are satisfied, the process goes to step 916. If any inequality is not satisfied, the process goes to step 918. In step 918, the process determines whether the scheduled thruster-burn time has arrived. If the scheduled thruster-burn time has arrived, the process goes to step 922. If the scheduled thruster-burn time has not arrived, the process goes to step 920. In step 920, the process outputs a thruster-burn warning signal, and returns to step 912. In step 922, the process outputs a thruster-burn reject signal, and the process goes to step 928 and ends. In step 916, the process determines whether the scheduled thruster-burn time has arrived. If the scheduled thruster-burn time has arrived, the process goes to step 924. If the scheduled thruster-burn time has not arrived, the process returns to step 912.

In step 924, the process executes the scheduled thruster burn and goes to step 926. In step 926, the process determines whether the rendezvous operation has completed. The rendezvous operation completion may be indicated by a signal from a user, for example, or by the absence of any further thruster-burns in the rendezvous plan. If the rendezvous operation has completed, the process goes to step 928 and ends. If the rendezvous operation has not completed, the process returns to step 902.

While the invention has been described in conjunction with exemplary embodiments, these embodiments should be viewed as illustrative, not limiting. Various modifications, substitutes, or the like are possible within the spirit and scope of the invention. 

What is claimed is:
 1. A space rendezvous control apparatus for a space-vehicle rendezvousing with a resident-space-object in a real-space comprising: a detected position of the space-vehicle; a nominal position of the space-vehicle of a next scheduled thruster-burn; a keep-out-zone of the resident-space-object; a plurality of first half-space boundary conditions determined based on the keep-out-zone, and the nominal position; and a controller that generates a propagated position of the space-vehicle by propagating the detected position, and generates a signal relating to the next scheduled thruster-burn if the propagated position of the space-vehicle does not satisfy one or more of the first half-space boundary conditions.
 2. The apparatus of claim 1, further comprising: a plurality of second half-space boundary conditions, each second half-space boundary condition corresponding to a time after the next scheduled thruster-burn, wherein the controller calculates the second half-space boundary conditions based on a nominal position of the space-vehicle for the time corresponding to each second half-space boundary condition.
 3. The apparatus of claim 2, wherein the controller selects first half-space boundary conditions from the second half-space boundary conditions by removing redundant second half-space boundary conditions.
 4. The apparatus of claim 2, further comprising a plurality of second half-spaces in the real-space, each of the second half-spaces corresponding to one of the second half-space boundary conditions, wherein the controller maps the second half-spaces in the real-space as points in a dual-space.
 5. The apparatus of claim 4, wherein the controller identifies points in dual-space that are on a convex hull of all points in the dual-space, and selects, as the first half-space boundary conditions, second half-space boundary conditions that correspond to the identified points in the dual-space.
 6. The apparatus of claim 2, further comprising a thruster-burn vector associated with the next scheduled thruster-burn, each second half-space boundary condition being calculated based on the thruster-burn vector.
 7. The apparatus of claim 2, wherein a maximum error of a position and a maximum error of a velocity of the space-vehicle are set to specific values and the second half-space boundary conditions are calculated based on the maximum error of the position and the maximum error of the velocity of the space-vehicle.
 8. The apparatus of claim 1, wherein the first half-space boundary conditions are determined based on either a nominal position of the space-vehicle resulting from a re-planned scheduled thruster-burn, or a nominal position of the space-vehicle resulting from a prior scheduled thruster-burn that was not re-planned.
 9. The apparatus of claim 1, wherein the apparatus is disposed in a ground-station or in the space-vehicle.
 10. The apparatus of claim 2, further comprising: means for calculating a second half-space boundary condition; means for mapping the second half-space boundary conditions from the real-space to a dual-space; means for identifying points in the dual-space that are on a convex hull of all points in the dual-space; means for selecting the second half-space boundary conditions that correspond to the identified points as the first half-space boundary conditions; means for checking whether a position of the space-vehicle obtained based on the detected position satisfies the first half-space boundary conditions; and means for outputting a signal that relates to the next scheduled thruster-burn if any of the first half-space boundary conditions are not satisfied.
 11. A method for controlling a space-vehicle to rendezvous with a resident-space-object in real-space comprising: receiving a detected position of the space-vehicle; receiving a nominal position of the space-vehicle of a next scheduled thruster-burn; receiving a keep-out-zone of the resident-space-object; calculating a plurality of first half-space boundary conditions based on the keep-out-zone and the nominal position; propagating the detected position to obtain a propagated position of the space-vehicle; and generating a signal that relates to the next scheduled thruster-burn if the propagated position of the space-vehicle does not satisfy one or more of the first half-space boundary conditions.
 12. The method of claim 11, further comprising calculating a plurality of second half-space boundary conditions, each second half-space boundary condition corresponding to a time after the next scheduled thruster-burn, wherein the second half-space boundary conditions are calculated based on a nominal position of the space-vehicle for the time corresponding to each second half-space boundary condition.
 13. The method of claim 12, further comprising selecting the first half-space boundary conditions by removing redundant second half-space boundary conditions.
 14. The method of claim 12, further comprising mapping a plurality of second half-spaces in the real-space into points in a dual-space, each of the second half-spaces corresponding to one of the second half-space boundary conditions.
 15. The method of claim 14, further comprising: forming a convex hull of all points in the dual-space; identifying points in the dual-space on the convex hull; and selecting, as the first half-space boundary conditions, second half-space boundary conditions that correspond to the identified points in the dual-space.
 16. The method of claim 11, further comprising: checking if a position of the space-vehicle satisfies all the first half-space boundary conditions; checking if a time of the next scheduled thruster-burn has arrived; and outputting a signal that rejects the next scheduled thruster-burn if the time of the next scheduled thruster-burn has arrived and if any of the first half-space boundary conditions are not satisfied.
 17. The method of claim 12, further comprising calculating the second half-space boundary conditions based on a thruster-burn vector associated with a next scheduled thruster-burn.
 18. The method of claim 12, wherein a maximum error of a position and a maximum error of a velocity of the space-vehicle are set to specific values and the second half-space boundary conditions are calculated based on the maximum error of the position and the maximum error of the velocity of the space-vehicle.
 19. The method of claim 11, further comprising determining the first half-space boundary conditions based on either a nominal position of the space-vehicle resulting from a re-planned scheduled thruster-burn, or a nominal position of the space-vehicle resulting from a prior scheduled thruster-burn that was not re-planned.
 20. A space rendezvous system comprising: a resident-space-vehicle; a space-vehicle; a detected position of the space-vehicle; a nominal position of the space-vehicle of the next scheduled thruster-burn; a keep-out-zone of the resident-space-object; a plurality of first half-space boundary conditions determined based on the keep-out-zone, and the nominal position; and a controller that generates a propagated position of the space-vehicle by propagating the detected position, and generates a signal that relates to the next scheduled thruster-burn if the propagated position of the space-vehicle does not satisfy one or more of the first half-space boundary conditions. 